﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace Chaos.stream
{
    public interface stream
    {
       stream begin(String in_String);
       stream end(String in_String = "");

       stream serialize(String in_String, ref bool in_Value);
       stream serialize(String in_String, ref int in_Value);
       stream serialize(String in_String, ref float in_Value);
       stream serialize(String in_String, ref double in_Value);
       stream serialize(String in_String, ref Enum in_Value);
       stream serialize(String in_String, ref String in_Value);
       stream serialize(String in_String, ref streamable in_Value);

       stream serialize(String in_String, ref int[] in_Value);
       stream serialize(String in_String, ref float[] in_Value);
       stream serialize(String in_String, ref double[] in_Value);
       stream serialize(String in_String, ref String[] in_Value);
       stream serialize(String in_String, ref streamable[] in_Value);

       stream serialize<T>(String in_String, ref ObservableCollection<T> in_Value);
        
        bool isoutputstream();
        bool isinputstream();


    }
}
